package com.caiyouxi.boss.buser.model;

import java.io.Serializable;
import java.util.Date;

/**
 * 一个用户可能会有多种登录方式，比如一个以用户名方式注册的用户可能会绑定手机号、邮箱、QQ、微信等。这些多个外部账号都属于同一个用户。此表就是为了记录此关系。
 */
public class SysUserAccountsBean implements Serializable {

    private Integer id;

    private Integer user_id; //该账号所属用户的编号。同一个用户对于同一个source + open_id的记录只能有一条。

    private String open_id; //账号在来源方的统一编号。如果是 PHONE，则显示为手机号码；如果有是 EMAIL，则显示为邮件地址；其他则为对应提供方的 open_id

    private String source; //账号来源: WECHAT:通过微信账号登录注册； WEIBO：通过新浪微博账号登录注册；QQ：通过 QQ 账号登录注册；EMAIL：通过电子邮件注册；PHONE：通过手机号码注册。TICAIBAO：体彩报用户。其他的第三方单独定义

    private String auth_protocol; //登录验证方式。有以下值之一：OAUTH2；SMSCODE；PASSWORD；WECHAT

    private String nickname; //该账号在来源的昵称。如果是 PHONE 或 EMAIL，则显示为对应的带掩码的文本作为昵称。

    private String access_token; //授权码。如果验证协议是 phone，这里保存的是短信验证码

    private Date token_expire_time; //无时区

    private Date token_create_time;

    private Date bind_time; //该账号绑定到 user_profile 的时间

    private String forbidden_login_areas; //有些第三方的账号我们可能不希望登录到我们的其他平台，这里记录不希望登录的平台代号。

    private String last_log; //该账号最近一次登录的情况

    private String data; //预留的可扩展字段。比如从微信登录的话，可以保存微信登录接口返回过来的微信用户数据

    private Integer remark; //删除标志

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getUser_id() {
        return user_id;
    }

    public void setUser_id(Integer user_id) {
        this.user_id = user_id;
    }

    public String getOpen_id() {
        return open_id;
    }

    public void setOpen_id(String open_id) {
        this.open_id = open_id;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getAuth_protocol() {
        return auth_protocol;
    }

    public void setAuth_protocol(String auth_protocol) {
        this.auth_protocol = auth_protocol;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getAccess_token() {
        return access_token;
    }

    public void setAccess_token(String access_token) {
        this.access_token = access_token;
    }

    public Date getToken_expire_time() {
        return token_expire_time;
    }

    public void setToken_expire_time(Date token_expire_time) {
        this.token_expire_time = token_expire_time;
    }

    public Date getToken_create_time() {
        return token_create_time;
    }

    public void setToken_create_time(Date token_create_time) {
        this.token_create_time = token_create_time;
    }

    public Date getBind_time() {
        return bind_time;
    }

    public void setBind_time(Date bind_time) {
        this.bind_time = bind_time;
    }

    public String getForbidden_login_areas() {
        return forbidden_login_areas;
    }

    public void setForbidden_login_areas(String forbidden_login_areas) {
        this.forbidden_login_areas = forbidden_login_areas;
    }

    public String getLast_log() {
        return last_log;
    }

    public void setLast_log(String last_log) {
        this.last_log = last_log;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public Integer getRemark() {
        return remark;
    }

    public void setRemark(Integer remark) {
        this.remark = remark;
    }
}